The optimization is designed to detect pagetable destruction, but re-uses the
pagetable entries to store data under certain conditions (paging, zeroing, &c);
sometimes the lower 8 bits are 0. These "false positives" cause unnecessary
shadowing and unshadowing.
Signed-off-by: George Dunlap <gdunlap@xensource.com>
shadow_validate_guest_pt_write(v, mfn, addr, bytes_on_page);
bytes -= bytes_on_page;
/* If we are writing zeros to this page, might want to unshadow */
- if ( *(u8 *)addr == 0 )
+ if ( *(u32 *)addr == 0 )
check_for_early_unshadow(v, mfn);
sh_unmap_domain_page(addr);
}